#include #include #include LiquidCrystal_I2C lcd(0x27,16,2); const byte ROWS = 4; const byte COLS = 4; bool v=false,n=false,m=false,h=false; int a=0,b=0,c=0,liczba=0,wart=0,f=0,dlugosc=0,wysokosc=0,kat=0,wartosc1=0,pos=0; byte rowPins[ROWS] = {2, 3, 4, 5}; byte colPins[COLS] = {6, 7, 8, 13}; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; char klawisz; Keypad klawiatura = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup() { lcd.init(); lcd.backlight(); lcd.setCursor(0,0); lcd.print("Podaj x:"); Serial.begin(9600); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode(A1,INPUT); digitalWrite(9,LOW); digitalWrite(12,LOW); analogWrite(10,0); analogWrite(11,0); } void loop () { klawisz=klawiatura.getKey(); if(klawisz && v==false && klawisz!='*' && klawisz!='#' && klawisz!='A' ) { a=(int)klawisz-48; lcd.setCursor(0,1); lcd.print(a); v=true; liczba=1; klawisz=klawiatura.getKey(); } if(klawisz && v==true && n==false && klawisz!='*' && klawisz!='#' && klawisz!='A') { b=(int)klawisz-48; lcd.print(b); n=true; liczba=2; klawisz=klawiatura.getKey(); } if(klawisz && v==true && n==true && m==false && klawisz!='*' && klawisz!='#' && klawisz!='A') { c=(int)klawisz-48; lcd.print(c); m=true; liczba=3; } if(liczba==1) { wart=a; liczba=0; f++; } if(liczba==2) { wart=b+(a*10); liczba=0; } if(liczba==3) { wart=(a*100) + (b*10) + c; liczba=0; } if(f==1) { dlugosc=wart; } if(f==2) { wysokosc=wart; } if(f==3) { kat=wart; } if(f==4) { wartosc1=wart; } if(klawisz && v==true && klawisz=='A' && f==1) { dlugosc=-dlugosc; lcd.setCursor(0,1); lcd.print(dlugosc); } if(klawisz && v==true && klawisz=='*' && f==1) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Podaj z:"); m=false; n=false; v=false; liczba=0; Serial.print(dlugosc); } if(klawisz && v==true && klawisz=='A' && f==2) { wysokosc=-wysokosc; lcd.setCursor(0,1); lcd.print(wysokosc); } if(klawisz && v==true && klawisz=='*' && f==2) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Podaj y:"); m=false; n=false; v=false; liczba=0; Serial.print(wysokosc); } if(klawisz && v==true && klawisz=='A' && f==3) { kat=-kat; lcd.setCursor(0,1); lcd.print(kat); } if((klawisz && v==true && klawisz=='*' && f==3) || klawisz && v==false && klawisz=='#' && wartosc1==0 && f==5) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Podaj ilosc cuk:"); m=false; n=false; v=false; liczba=0; f=3; Serial.print(kat); } if(klawisz && v==true && klawisz=='*' && f==4) { f=5; lcd.clear(); lcd.setCursor(0,0); lcd.print("Pozostala liczba"); lcd.setCursor(0,1); lcd.print("cukierkow:"); lcd.print(wartosc1); } if(digitalRead(A1)==LOW && wartosc1>0 && h==true && f==5) { wartosc1--; lcd.clear(); lcd.setCursor(0,0); lcd.print("Pozostala liczba"); lcd.setCursor(0,1); lcd.print("cukierkow:"); lcd.print(wartosc1); h=false; } if(digitalRead(A1)==LOW && wartosc1>0 && f==5) { digitalWrite(9,LOW); digitalWrite(12,LOW); analogWrite(10,0); analogWrite(11,0); } if(digitalRead(A1)==HIGH && wartosc1>0 && h==false && f==5) { digitalWrite(9,HIGH); digitalWrite(12,LOW); analogWrite(10,110); analogWrite(11,255); h=true; } if(wartosc1==0 && f==5) { lcd.clear(); lcd.setCursor(0,0); lcd.print("Brak cukierkow!"); digitalWrite(9,LOW); digitalWrite(12,LOW); analogWrite(10,0); analogWrite(11,0); lcd.noDisplay(); //Wyłącz i poczekaj delay(200); lcd.display(); //Włącz i poczekaj delay(200); v=false; } delay(200); }